]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
status/network: Sync active connections again on connection-added
authorJonas Dreßler <verdre@v0yd.nl>
Fri, 1 Mar 2024 16:24:37 +0000 (17:24 +0100)
committerJonas Dreßler <verdre@v0yd.nl>
Fri, 1 Mar 2024 16:32:07 +0000 (17:32 +0100)
NetworkManagers NmClient has a bug for wireguard connections where the
notify::active-connections and connection-added are emitted in the wrong order:
When a wireguard connection gets activated, notify::active-connections is
emitted first, then connection-added happens.

We currently expect these signals to emitted in the correct order, so our VPN
toggle is not actually updated when a wireguard connection is established.

Until this bug is fixed in NetworkManager, work it around by calling
_syncActiveConnections() manually after we see ::connection-added.

NM issue: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1483

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6656
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3219>

js/ui/status/network.js

index a263b41c788516cb1c9178fb3fb03bb688664b49..dad668358d4fe5ef9ecc60e315dc3dd9965a4acb 100644 (file)
@@ -1597,6 +1597,10 @@ class NMVpnToggle extends NMToggle {
             'activation-failed', () => this.emit('activation-failed'),
             this);
         this._addItem(connection, item);
+
+        // FIXME: NM is emitting "connection-added" after "notify::active-connections",
+        // so we need to sync connections here once again.
+        this._syncActiveConnections();
     }
 
     _removeConnection(connection) {